package com.zhuiyun.project.api.coachmanagement.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuiyun.project.api.coachmanagement.entity.CoachManagement;
import com.zhuiyun.project.api.coachmanagement.model.*;
import com.zhuiyun.project.common.errorCode.CommonException;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;
import org.springframework.web.multipart.MultipartFile;

/**
 * @InterfaceName CoachManagementService
 * @Description TODO
 * @Author wuwan
 * @Date 2023/11/2 13:39
 **/
public interface CoachManagementService extends IService<CoachManagement> {
    /*
    * @Author wuwan
    * @Description 添加教练信息
    * @Date 2023/11/10 10:21
    * @Return
    */
    CommonResult addCoach(CoachAddModel coachAddModel, MultipartFile[] files) throws CommonException;
    /*
    * @Author wuwan
    * @Description 教练分页查询
    * @Date 2023/11/10 10:21
    * @Return
    */
    CommonResult selectCoach(PageRequest pageRequest,String venueUniqueIdentifier, String coachName, String coachPhone);
    /*
    * @Author wuwan
    * @Description 修改教练信息
    * @Date 2023/11/10 10:21
    * @Return
    */
    CommonResult updVenue(CoachAddModel coachAddModel, MultipartFile[] files) throws CommonException;
    /*
     * @Author wuwan
     * @Description 根据邀请码查询教练id
     * @Date 2023/11/6 10:10
     * @Return
     */
    CommonResult getCoachId(String coachCode);

    /**
    * @Author 杨友朋
    * @Description 根据id查询教练
    * @Date 2023/11/28 9:12
    * @Return CommonResult
    * @param id
    */
    CommonResult getCoachById(int id);

    /**
    * @Author 杨友朋
    * @Description 解密
    * @Date 2023/11/28 16:40
    * @Return Boolean
    * @param word,myWord
    */
    Boolean encryption(String word,String myWord);

    /**
     * @Author 杨友朋
     * @Description 修改密码
     * @Date 2023/11/29 9:32
     * @Return CommonResult
     * @param coachUpPasswordModel
     */
    CommonResult upPassword(CoachUpPasswordModel coachUpPasswordModel) throws CommonException;

    /**
     * @Author 杨友朋
     * @Description 修改性别
     * @Date 2023/11/29 9:32
     * @Return CommonResult
     * @param coachUpSexModel
     */
    CommonResult upSex(CoachUpSexModel coachUpSexModel) throws CommonException;

    /**
     * @Author 杨友朋
     * @Description 修改姓名
     * @Date 2023/11/29 9:32
     * @Return CommonResult
     * @param coachUpNameModel
     */
    CommonResult upName(CoachUpNameModel coachUpNameModel) throws CommonException;

    /**
     * @Author 杨友朋
     * @Description 根据教练邀请码查询学员
     * @Date 2023/11/28 9:06
     * @Return CommonResult
     * @param coachCode
     */
    CommonResult getStudentByTeacherId(String coachCode);
    /**
     * @Author 杨友朋
     * @Description 根据教练邀请码查询学员
     * @Date 2023/11/28 9:06
     * @Return CommonResult
     * @param coachCode
     */
    CommonResult getStudentByTeacherIdUser(Integer userid,String coachCode);

    /**
     * @Author wx
     * @Description 根据invitationCode查询单教练的数据
     * @Date 2023/12/3 18:51
     * @Return
     * @param venueUniqueIdentifier
     */
    CommonResult selectByInvitationCode(Integer id,String invitationCode, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 根据用户ID查询单教练的数据
     * @Date 2023/12/4 10:19
     * @Return
     * @param venueUniqueIdentifier
     */
    CommonResult selectCoachByUserId(Integer id, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 根据邀请码查询单教练的数据
     * @Date 2023/12/4 10:48
     * @Return
     * @param invitationCode
     */
    CommonResult selectCoachByInvitationCode(String invitationCode, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 根据邀请码查询邀请码申请的数据
     * @Date 2023/12/5 9:26
     * @Return
     * @param venueUniqueIdentifier
     */
    CommonResult selectCoachApplyByInvitationCode(String invitationCode, String venueUniqueIdentifier, Integer memberUserId);

    /**
     * @Author wx
     * @Description 根据邀请码查询教练申请
     * @Date 2023/12/5 15:46
     * @Return
     * @param coachCode
     */
    CommonResult selectCoachInfoByCode(String coachCode);

    /**
     * @Author wx
     * @Description 添加用户的教练邀请码
     * @Date 2023/12/5 18:42
     * @Return
     * @param memberUserId
     */
    CommonResult updateCoachCode(String coachCode, Integer memberUserId) throws CommonException;

    CommonResult coachUpNotes(CoachUpNotesModel coachUpNotesModel);

    CommonResult getCoachByVenueUniqueIdentifier(String venueUniqueIdentifier,String id);

    CommonResult studentHandover(CoachHandoverModel coachHandoverModel) throws CommonException;

    CommonResult deletecoachImg(Integer id, Integer delImageId);
}
